﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NewsMine.DomainObjects
{
    public class MFeed : BasicInfo
    {
        public string Title { get; set; }
        public string Link { get; set; }

        public bool IsAdultContent { get; set; }

        public DateTime LastPublishedTime { get; set; }

        public long AuthorId { get; set; }

        [NonSerialized]
        public List<MFeedItem> FeedItems;

    }



    /// <summary>
    /// Class that allows 
    /// </summary>
    [Serializable]
    public class Feed : BasicInfo
    {
        public string Title { get; set; }
        public string Titlle2 { get; set; }

        public string Description { get; set; }
        public string Decription2 { get; set; }

        public string Link { get; set; }
        public DateTime PublishedTime { get; set; }

        /// <summary>
        /// todo: needs to be define structure of the image information.
        /// </summary>
        public string Image { get; set; }


        public WebSiteInfo WebSite { get; set; }   //this can be just an ID of the website... todo: this needs to be decided at the time of the db movement.

        public AuthorInfo AuthorInfo { get; set; }


        /// <summary>
        /// if the categories are empty, based on the Menu item, we can arrive at the categories
        /// Todo: what if the the source is not having any kind of the categories.... answer:- Analysis engine will define the fate of the category data.
        /// </summary>
        public List<Category> Categories { get; set; } 

        public WebSiteMenu SourceMenu { get; set; }

        #region Analyze and definabled properties.

        /// <summary>
        /// Based on the website and feedlinksource confiuguration, we need to define the language. 
        /// If not available, we need to identify based on the the content of the feed entry.
        /// </summary>
        public Language Language { get; set; }

        /// <summary>
        /// Todo: this can tbe list of the location. but we need to decide whether to attribute all the locations or only hint location.
        /// </summary>
        public GeoLocation Location { get; set; }

        public List<KeyWord> TitleKeyWords { get; set; }

        public List<KeyWord> StoryKeywords { get; set; }

        public bool IsItHotNews { get; set; }

        public string SEOLink { get; set; }

        public string ImagesFound { get; set; }

        public string VideosFound { get; set; }

        public string RelatedStories { get; set; }

        /// <summary>
        /// Todo: needs to be decided... 
        /// </summary>
        public object Popularity { get; set; }



        #endregion


        /// <summary>
        /// Todo: feedType enum needs to be d
        /// </summary>
        public FeedType FeedType { get; set; }

    }
    

}
